Skip to content

btc(g2): RATCHET staged-migration harness + 5-check evidence (mirror DGB #427) - #436

Merged
frstrtr merged 1 commit into
masterfrom
btc/g2-ratchet-staged-migration
Jun 25, 2026
Merged

btc(g2): RATCHET staged-migration harness + 5-check evidence (mirror DGB #427)#436
frstrtr merged 1 commit into
masterfrom
btc/g2-ratchet-staged-migration

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 24, 2026

Copy link
Copy Markdown
Owner

G2 RATCHET — BTC staged-migration harness (mirrors DGB #427)

Greenlight gate G2 for BTC, per integrator 2026-06-24. Additive/fenced: scripts/ only — no consensus, shared-base, build.yml or CMake surface.

What it proves

c2pool-btc conforms to its OWN oracle p2pool-btc-jtoomim @ece15b03 (SPB v35 / proto 3502) and drives the 35→36 ratchet governed by the core::version_gate SSOT, backward-compatible with v35 in-window. Separate SHA256d sharechain — not the LTC crossing.

Integrator acceptance criteria

  1. Stage miners ONE AT A TIME (not a flat flip) and assert the work-weighted desired-version tally advances monotonically per stage — C3 loop reads sampling_desired_version from /local_stats after each stage, hard-fails on any regression.
  2. Hard-fail asserts at each stage boundary (no silent pass); per-stage tally captured in the RESULT line (stageN=w:<work>/c:<count>).
  3. Same fence discipline as G3a (btc(g3a): populated-block regtest harness + round-trip assertions #435): additive scripts/ only, signed, no third-party attribution.
  4. [s=shipped] with live evidence.

Live evidence (rig-free, now)

  • gate-logic anchor PASS 2/2: BTC_version_gate.{V36ActivationBoundary,SegwitNotFoldedIntoV36Gate} — the 35→36 boundary the ratchet keys off.
  • C1 substrate + work-weighted tally-readout mechanism reachable.
  • C5 ALGO POSTURE PASS — BTC single-algo (SHA-256d) by construction.

GATED (honest)

C1–C4 LIVE work-weighted rows need real SHA256d hashrate to move sampling_desired_version; the rig set is in the live LTC crossing-soak (request the window, do NOT pull rigs off a live soak — DGB #427 precedent).

BTC-specific gap (differs from DGB #427): BTC has no AutoRatchet ctest suite (only the two version_gate boundary KATs), so there is no rig-free sim fallback for C2/C3/C4 the way DGB had --sim-votes. Open question to integrator in the evidence template: (a) request rig window, or (b) authorize a small BTC AutoRatchet KAT suite — note (b) crosses the scripts/ fence.

See scripts/btc_g2_evidence_template.md for the full 5-check form. I do not self-merge.

Mirror DGB #427 for BTC. Stages miners 1-by-1 onto the v36 vote and asserts
the work-weighted desired-version tally (sampling_desired_version) advances
monotonically per stage, with the 95%-by-count activation gated behind the
60%-by-work accept (#288) so mint cannot outrun accept. Per-stage tally
captured in the RESULT line; hard-fail asserts at each stage boundary.

Oracle = p2pool-btc-jtoomim @ece15b03 (SPB v35 / proto 3502); 35->36 ratchet
governed by core::version_gate SSOT. Isolated private-sharechain testbed via
--network-id/--prefix (bucket-1 isolation primitives, kept per-instance).

gate-logic anchor (rig-free) proven now: BTC_version_gate KATs 2/2 PASS.
C1 substrate + work-weighted tally readout reachable. C2/C3/C4 LIVE rows
GATED on the SHA256d rig window (LTC soak owns the rigs); BTC has no
AutoRatchet sim KAT, so no rig-free sim fallback for those rows.

Additive/fenced: scripts/ only -- no consensus, shared-base, build.yml or
CMake surface.
frstrtr added a commit that referenced this pull request Jun 25, 2026
… DGB #427 / BTC #436) (#482)

Greenlight gate G2 for DASH: staged 1-by-1 miner-migration over a dual
v16-oracle + v36-c2pool sharechain, 5 checks. Conforms vs DASH own oracle
frstrtr/p2pool-dash @9a0a609 (share VERSION=16) -> 16->36 ratchet; separate
X11 sharechain, NOT the LTC v35 crossing.

Additive/fenced: scripts/ only, no consensus/shared-base/build.yml/CMake
surface, DASH-only. Keeps the dashd submitblock RPC fallback.

DASH edge over BTC #436: staged-gate LOGIC is sim-proven rig-free NOW via
the master weighted-gate KATs (test_dash_conformance VersionNeg.* +
VersionWiring.*, 11/11) -- weighted 60% accept, weighted 95% v36 gate,
weight-not-count, 5-case switch, wired-path admit/reject. Real --regtest
parent (same substrate as proven G3a/G3b populated won blocks). Only the
LIVE work-weighted tally through staged X11 stratum miners is rig-gated.

Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
@frstrtr
frstrtr merged commit d4b57d8 into master Jun 25, 2026
31 of 32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant